In computer communication technology, two benchmarks by which communication protocols are often compared are data transfer rate and error rate. Generally, these two performance criteria are directly related to each other such that an increase in speed usually results in a corresponding increase in error rate. Therefore, computer communication specialists are continually searching for communication protocols that allow an increase in the speed with which data are transferred between machines, without introducing a corresponding increase in error rate.
A conventional method for conveying data between computers, especially personal computers, involves the interconnection of a data bus disposed in a sending computer with a data bus disposed in a receiving computer via serial or parallel ports. The data are transmitted between parallel ports over a data link that includes two handshaking lines, generally referred to as a strobe line and an acknowledge line. The following steps are used to transmit data from the sending computer to the receiving computer:
1. the sending computer loads a piece of data on the data link through a parallel data port; PA0 2. the sending computer sets the strobe line; PA0 3. the receiving computer recognizes the setting of the strobe line and reads the data from the data link through its parallel data port; PA0 4. the receiving computer sets the acknowledge line; PA0 5. the sending computer recognizes the setting of the acknowledge line, resets the strobe, and loads the next piece of data to be sent on the data link; PA0 6. the receiving computer recognizes the resetting of the strobe and resets the acknowledge line; and PA0 7. the sending computer recognizes the setting of the acknowledge line and sets the strobe line for the next piece of data to be sent.
The above method is very safe, since data are only sent from the sending computer to the receiving computer as fast as the receiving computer can handle them. Unfortunately, the delays spent polling or checking the status of the strobe and acknowledge lines reduces the overall rate at which data can be sent from the sending computer to the receiving computer. Therefore, it is desirable to implement a method of data communication between two computers whereby unnecessary delays spent polling the acknowledge line can be eliminated, without causing a corresponding rise in the error rate.